#ifndef IO_H
#define IO_H

#include "call.h"

enum { SENS_INDEFINI, SENS_IN, SENS_OUT };
enum { IO_MATH, IO_COND, IO_SYMBOLE, IO_NUM, IO_BOOL, IO_STRING, IO_ENDL, IO_IN, IO_FUNC };

class IO : public Instruction
{
	public:
	virtual ~IO();
	IO();
		
	int sens;
	bool aEndl;

	Retour evaluer(map<string, Var_T> *loc, map<string, Var_T> *glob);
	void entrerVariable(map<string, Var_T> *contexte);

	Emath math;
	Econ con;
	Var_T sym;
	int type;

	Call *func;
};

Instruction* creerIo(list<token> tokens);

#endif